CCreateText 类实现了ICommand接口。在绘图区单击鼠标左键时,新建一个窗体作为有模式对话框输入文本内容。用Graphics对象的DrawString方法将对话框中得到的字符串输出到绘图区,将新创建的文本添加到图元集合类中。
code.vc#.net
public class CCreateText:ICommand
{
public CCreateText()
{
}
public void LButtonDown(Graphics g, PointF aPos,ArrayList ges,ArrayList geSels)
{
string strContent;
//利用输入对话框输入文本内容
Text text=new Text();
text.ShowDialog(new Form1());
strContent=text.SetConent();
CText newText=new CText(strContent, aPos);
newText.Draw(g, DrawMode.Normal);
ges.Add(newText);
}
public void MouseMove(Graphics g, PointF aPos)
{
}
public void RButtonDown(Graphics g, PointF aPos)
{
}
}
使用VC#.NET时,需要新建一个窗体,在Form1类中创建一个它的实例以后,将它作为有模式对话框进行调用。窗体的界面如图4-1所示。
\[\]
图4-1 "文本设置"对话框
需要从"文本设置"对话框中返回要输入的文本的内容。在该窗体类中添加下面的代码:
code.vc#.net
private string txt;
private void button1_Click(object sender, System.EventArgs e)
{
txt=textBox1.Text;
this.Dispose();
}
public string SetConent()
{
return txt;
}
private void button2_Click(object sender, System.EventArgs e)
{
this.Dispose();
}